package controlador;


import java.util.ArrayList;
import java.util.List;

import modelo.Cliente;



import org.springframework.stereotype.Controller;

import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import org.zkoss.zk.ui.Component;



@Controller
public class CCatalogoSolicitandoRegistro extends CGeneral {
	

		@Wire
		private Listbox ltbClientes;
		@Wire
		private Window wdwCatalogoSolicitandoRegistro;
		@Wire
		private Textbox txtCedulaMostrarCliente;
		@Wire
		private Textbox txtNombreMostrarCliente;
		@Wire
		private Textbox txtApellidoMostrarCliente;
		@Wire
		private Textbox txtCorreoMostrarCliente;
		@Wire
		private Textbox txtContactoMostrarCliente;

		/*
		 * Metodo heredado del Controlador CGeneral .
		 */
		@Override
		public void inicializar(Component comp) {
			// TODO Auto-generated method stub

			List<Cliente> clientes = servicioCliente.BuscarClienteSolicitandoRegistro();
			ltbClientes.setModel(new ListModelList<Cliente>(clientes));

		
			

		}

		/*
		 * Metodo que permite filtrar
		 */
		@Listen("onChange = #txtCedulaMostrarCliente,#txtNombreMostrarCliente,#txtApellidoMostrarCliente,#txtCorreoMostrarCliente,#txtContactoMostrarCliente")
		public void filtrarDatosCatalogo() {

			List<Cliente> clientes = servicioCliente.BuscarClienteSolicitandoRegistro();
			List<Cliente> clientes1 = new ArrayList<Cliente>();

			for (Cliente cliente :clientes) {
				if (cliente
						.getCedula()
						.toLowerCase()
						.contains(
								txtCedulaMostrarCliente.getValue().toLowerCase())
						&& cliente
								.getNombre()
								.toLowerCase()
								.contains(
										txtNombreMostrarCliente.getValue()
												.toLowerCase())
						&& cliente
								.getApellido()
								.toLowerCase()
								.contains(
										txtApellidoMostrarCliente.getValue()
												.toLowerCase())
						&& cliente
								.getCorreoElectronico()
								.toLowerCase()
								.contains(
										txtCorreoMostrarCliente.getValue()
												.toLowerCase())
						&& cliente
								.getPersonacontacto()
								
								.toLowerCase()
								.contains(
										txtContactoMostrarCliente.getValue()
												.toLowerCase())) {
					clientes1.add(cliente);
				}

			}

			ltbClientes.setModel(new ListModelList<Cliente>(clientes1));

		}

		

		/*
		 * Metodo que permite obtener el objeto .
		 */
		@Listen("onDoubleClick = #ltbClientes")
		public void mostrarDatosCatalogo() {

			
				
		}

		

		/* Metodo que permite cerrar la ventana correspondiente al Catalogo */
		@Listen("onClick = #btnSalirCatalogoCliente")
		public void salirCatalogoCliente() {
			wdwCatalogoSolicitandoRegistro.onClose();
		}

	}



